<?php

include_once("../dao/conexao_class.php");
include_once("../model/opcoes_sistema_model_class.php");

class OpcoesSistemaDAO {

    private $insert = "INSERT INTO opcoes_sistema(opc_descricao) values(?);";
//    private $update = "UPDATE opcoes_sistema SET opc_descricao = ? WHERE opc_id = ?;";
//    private $delete = "DELETE FROM opcoes_sistema WHERE opc_id = ?;";
    private $select = "SELECT * FROM opcoes_sistema;";
    private $select_by_id = "SELECT * FROM opcoes_sistema WHERE opc_id = ?;";
//    private $select_opcoesSistema = "SELECT * FROM opcoes_sistema WHERE opc_descricao = ?;";

    function insert($objOpcoesSistema) {
        //conectando ao banco
        $objConn = new Conexao();
        $conn = $objConn->conecta();
//        var_dump($conn);
        //criando o preparedStatment
        if ($stm = $conn->prepare($this->insert)) {

            $stm->bind_param("s", $objOpcoesSistema->getDescricao());

            if ($stm->execute()) {
                $conn->close();
                return true;
            } else {
                $conn->close();
                return false;
            }
        } else {
            return false;
        }
    }

//    function update($objOpcoesSistema) {
//
//        $objConn = new Conexao();
//        $conn = $objConn->conecta();
//
//        if ($stm = $conn->prepare($this->update)) {
//
//            $stm->bind_param("si", $objOpcoesSistema->getDescricao(), $objOpcoesSistema->getId());
////            $stm->bind_param("i",);
//
//            if ($stm->execute()) {
//                $conn->close();
//                return true;
//            } else {
//                $conn->close();
//                return false;
//            }
//        }
//        return false;
//    }
//
//    function delete($id) {
//
//        $objConn = new Conexao();
//        $conn = $objConn->conecta();
//
//        if ($stm = $conn->prepare($this->delete)) {
//
//            $stm->bind_param("i", $id);
//
//            if ($stm->execute()) {
//                $conn->close();
//                return true;
//            } else {
//                $conn->close();
//                return false;
//            }
//        }
//        return false;
//    }
//
    function findAllOpcoesSistema() {

        $objConn = new Conexao();
        $conn = $objConn->conecta();
        $opcM = new OpcoesSistemaModel();
        $lista = array();
        if ($stm = $conn->prepare($this->select)) {

            $stm->execute();

            //atribui o resultado encontrado as variaveis
            $stm->bind_result($id, $descricao);

            
            //para cada resultado encontrado
            $i = 0;
            while ($stm->fetch()) {
                $opcM = new OpcoesSistemaModel();
                
                $opcM->setId($id);
                $opcM->setDescricao($descricao);
                
                $lista[$i++] = $opcM;
            }

            $conn->close();
            return $lista;
        }
    }
    
    function findById($id) {

        $objConn = new Conexao();
        $conn = $objConn->conecta();
        $opcM = new OpcoesSistemaModel();
        
        if ($stm = $conn->prepare($this->select_by_id)) {
            
            $stm->bind_param('i', $id);
            
            $stm->execute();

            //atribui o resultado encontrado as variaveis
            $stm->bind_result($id, $descricao);

            
            //para cada resultado encontrado
            $i = 0;
            while ($stm->fetch()) {
                $opcM = new OpcoesSistemaModel();
                
                $opcM->setId($id);
                $opcM->setDescricao($descricao);
                
                return $opcM;
            }

            $conn->close();
            return $opcM;
        }
    }

//    function existe($opcoesSistema) {
//
//        $objConn = new Conexao();
//        $conn = $objConn->conecta();
//
//        if ($stm = $conn->prepare($this->select_opcoesSistema)) {
//            
//            $stm->bind_param("s", $opcoesSistema);
//            
//            $stm->execute();
//
//            while ($stm->fetch()) {
//                $conn->close();
//                return true;
//            }
//
//        }
//        
//        $conn->close();
//            return false;
//    }
    
}

//$teste = new OpcoesSistemaDAO();
//$opc = new OpcoesSistemaModel();
////$opc->setId(3);
//$opc->setDescricao("Administraçao");
//
////$opc = 3;
//if($teste->insert($opc)){
//    printf("Deletado com sucesso!");
//}else{
//    printf("Erro ao deletar!");
//}
//
//var_dump($teste->findAllOpcoesSistema());

